﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Permissions;

namespace Engine.POI
{


    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
    public enum PoiDirection
    {
        North,
        Sought,
        East,
        West
    };

    /// <summary>
    /// Supported poi file types.
    /// </summary>
    public enum PoiType
    {
        Unknown,
        IGO
    };

    [PermissionSet(SecurityAction.Demand,Name="FullTrust")]
    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
    public abstract class BasePoi
    {
        Location loc; // poi location
        string name; // poi name
        string description;



        #region Properties 


        /// <summary>
        /// Poi location.
        /// </summary>
        public Location Location
        {
            get { return loc; }
            set { loc = value; }
        }

        /// <summary>
        /// Poi name.
        /// </summary>
        public string Name
        {
            get { return name; }
            set { name = value; }
        }

        /// <summary>
        /// Description
        /// </summary>
        public string Description
        {
            get { return description; }
            set { description = value; }
        }

        #endregion

        #region Constructors

        /// <summary>
        /// Default constructor
        /// </summary>
        public BasePoi()
        {
            name = string.Empty;
            description = string.Empty;
            loc = new Location();
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="Loc"></param>     
        public BasePoi(Location Loc)
            :this()
        {
            this.loc = Loc;
        }

        public BasePoi(BasePoi Poi)
        {
            this.loc = Poi.loc;
        }




        #endregion


       
    }
}
